In [40]:
import numpy as np
import matplotlib.pyplot as plt
import matplotlib.patches as patches
import torch
import torchvision
from helper_Penn import PennFudanDataset
import utils 


import copy
import torch.optim as optim 
from torch.optim import lr_scheduler 
import os
from PIL import Image
In [58]:
dataset_test = PennFudanDataset( os.path.join('PennFudanPed_hw3', 'test') )
data = np.load("data.npy")

category = ['background','person']
color = ['b', 'g','r', 'c','m','y','k','w']
In [48]:
idx = 0 
path = 'PennFudanPed_hw3/test/Images/FundaPed000' + str( idx + 30 ) +'.png' 
path
Out[48]:
'PennFudanPed_hw3/test/Images/FundaPed00030.png'
In [56]:
def plot_bbox( idx ):
    
    img_id = data[idx][0]
    mAP = data[idx][1]
    bounding_box = data[idx][2]
    labels = data[idx][3]
    num_bbox = bounding_box.shape[0]
    
    
    path = 'PennFudanPed_hw3/test/Images/FudanPed000' + str( img_id + 30 ) +'.png' 
    
    img = Image.open( path )
    
    fig, ax = plt.subplots(1, dpi = 600)
    ax.imshow(img)
    plt.title("figure %d_mAP: %.3f"%(idx,mAP) )
    
    for i in range(num_bbox):
        x1,y1,x2,y2 = bounding_box[i]
        rec = patches.Rectangle( (x1,y1), x2-x1, y2-y1, 
                               linewidth = 1, edgecolor = color[i%8], facecolor = 'none')
        ax.add_patch(rec)
        label = category[ labels[i] ]
        plt.text(( x1 + x2)/2, y1 -5,label,fontsize = 12, color =color[i%8] )
    
    plt.show()
    
In [59]:
plot_bbox(0)
In [60]:
plot_bbox(1)
In [61]:
plot_bbox(2)
In [62]:
plot_bbox(3)
In [63]:
plot_bbox(4)
In [64]:
plot_bbox(5)
In [65]:
plot_bbox(6)
In [66]:
plot_bbox(7)
In [67]:
plot_bbox(8)
In [68]:
plot_bbox(9)
In [69]:
plot_bbox(10)
In [70]:
plot_bbox(11)
In [71]:
plot_bbox(12)
In [72]:
plot_bbox(13)
In [73]:
plot_bbox(14)
In [74]:
plot_bbox(15)
In [75]:
plot_bbox(16)
In [76]:
plot_bbox(17)
In [77]:
plot_bbox(18)
In [78]:
plot_bbox(19)